#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @File  : 3.使用闭包完成案例.py
# @Author: Micah
# @Func  : 用于
# @Time  : 2023/11/14


def person(name):
    # 在函数的内部定义一个内层函数
    def say(message):
        print(f'{name}:{message}')

    # 需要在外部函数返回内部函数的引用
    return say


# p1和p2接收的事内部函数的引用
p1 = person('张三')
p2 = person('李四')

# 因为外层函数返回的是内层函数的引用，如果想要运行内层函数
p1('今天吃了吗？')
p2('吃了')
p1('吃了啥？')
p2('半头牛')
p1('为啥不给我吃？')
p2('我一个人刚刚好')
p1('友谊的小船说翻就翻？')
p2('我会游泳')

'''
person函数返回的是什么
    say函数的引用
    
p1 = say
p2 = say
'''